package com.server.liad.api.system.remote;



import com.server.model.all.system.bo.AddRabbitConfirmLogBo;
import com.server.model.all.system.bo.UpdateRabbitConfirmLogBo;
import com.server.model.all.system.dto.AddLogOperationDto;
import com.server.model.all.system.dto.AddSmsLogOperationDto;
import com.server.model.all.constant.service.ServiceNameConstant;
import com.server.common.code.utils.Result;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;

import java.util.List;

@FeignClient(contextId = "remoteSystemService",value = ServiceNameConstant.LIAD_SYSTEM)
public interface RemoteSystemService {

    /**
     * 添加操作记录
     *
     * @author LXC
     * @date 2022/6/17 14:20
     */
    @PostMapping("/userOperationLog/private/addLogOperation")
    Result<Integer> addLogOperation(@RequestBody @Validated AddLogOperationDto addLogOperationDto);

    /**
     * 添加短信记录
     *
     * @author LXC
     * @date 2022/6/17 14:20
     */
    @PostMapping("/userOperationLog/private/addSmsLogOperation")
    Result<Integer> addSmsLogOperation(@RequestBody @Validated AddSmsLogOperationDto addSmsLogOperationDto);

    /**
     * 获取IP地址黑白名单
     *
     * @author LXC
     * @date 2023/2/4 9:28
     */
    @PostMapping("/blackWhiteList/private/getBlackWhiteIpAddr")
    public Result<List<String>> getBlackWhiteIpAddr(@RequestParam("state") Integer state);

    /**
     * 添加mq的提交确认日志
     * @author LXC
     * @date 2023/2/4 20:15
     */
    @PostMapping("/rabbitConfirmLog/private/addRabbitConfirmLog")
    public Result<Boolean> addRabbitConfirmLog(@RequestBody AddRabbitConfirmLogBo addRabbitConfirmLogBo);

    /**
     * 添加mq的提交确认日志
     * @author LXC
     * @date 2023/2/4 20:15
     */
    @PostMapping("/rabbitConfirmLog/private/updateRabbitConfirmLog")
    public Result<Boolean> updateRabbitConfirmLog(@RequestBody UpdateRabbitConfirmLogBo updateRabbitConfirmLogBo);
}
